
/**
 *  移动到一个定位 
 */
function toPoint() {
  //这里给动画设置一个初始值
  map.getView().animate({
    //将地理坐标转为投影坐标
    center: ol.proj.transform([117.869, 36.559], 'EPSG:4326', 'EPSG:3857'),
    duration: 1000,
    zoom: 12,
  })
}



/**
 *  显示所有的图层
 */
function addAllPoint() {
  map.addLayer(location_layer);
}

/**
 *  取消所有的图层
 */
function quxiaoAllPoint() {
  map.removeLayer(location_layer);
}

/**
 *  显示文本
*/
var vectorLayer;
function addText() {
  /**
   * 创建矢量标注样式函数,设置image为图标ol.style.Icon
   * @param {ol.Feature} feature 要素
   */
  var createLabelStyle = function (feature) {
    return new ol.style.Style({
      text: new ol.style.Text({
        //位置
        textAlign: 'center',
        //基准线
        textBaseline: 'center',
        //文字样式
        font: 'normal 15px 微软雅黑',
        //文本内容
        text: feature.get('name'),
        //文本填充样式（即文字颜色）
        fill: new ol.style.Fill({ color: '#000000' }),
        stroke: new ol.style.Stroke({ color: '#ffcc33', width: 2 }),
      }),
    })
  }

  //实例化Vector要素，通过矢量图层添加到地图容器中
  var iconFeature = new ol.Feature({
    geometry: new ol.geom.Point(ol.proj.transform([117.869, 36.559], 'EPSG:4326', 'EPSG:3857')),
    //名称属性
    name: '我是一个档案',
    //大概人口数（万）
    population: 2000,
    zIndex: 1000,
  })

  iconFeature.setStyle(createLabelStyle(iconFeature));

  //矢量标注的数据源
  var vectorSource = new ol.source.Vector({
    features: [iconFeature],
  })

  //矢量标注图层
  vectorLayer = new ol.layer.Vector({
    source: vectorSource,
    zIndex: 1000,
  })

  map.addLayer(vectorLayer)
}

/**
 *  取消文本
 */
function quxiaoText() {
  map.removeLayer(vectorLayer);
}

/**
 * 判断是否添加和关闭所有工程点 
 */
function checkAddAllPoint() {
  // 获取checkbox元素
  var CheckallPoint = document.getElementById('allPoint');
  // 判断checkbox是否被选中
  if (CheckallPoint.checked) {
    console.log('Checkbox 被选中了。');
    // 打开全部工程点的定位
    addAllPoint();
  } else {
    console.log('Checkbox 没有选中。');
    quxiaoAllPoint();
  }
}

/**
 * 判断是否添加和关闭所有工程点名称
 */
function checkAddAllText() {
  // 获取checkbox元素
  var CheckAllText = document.getElementById('allText');
  // 判断checkbox是否被选中
  if (CheckAllText.checked) {
    console.log('Checkbox 被选中了。');
    // 打开全部工程点的定位
    addText();
  } else {
    console.log('Checkbox 没有选中。');
    quxiaoText();
  }
}

/**
 * 判断是否显示影像图
 */
function checkYingXiang() {
  // 获取checkbox元素
  var CheckYingXiang = document.getElementById('yingXiang');
  // 判断checkbox是否被选中
  if (CheckYingXiang.checked) {
    console.log('Checkbox 被选中了。');
    // 显示影像地图
    addYingxiang();
  } else {
    console.log('Checkbox 没有选中。');
    quxiaoYingxiang();
  }
}

/**
 * 是否显示影像地图
 */
function addYingxiang() {
  // 确保地图容器已经加载完成后添加图层
  map.addLayer(YXMapLayer);
}

/**
 * 取消影像地图
 */
function quxiaoYingxiang() {
  map.removeLayer(YXMapLayer);
}

/**
 * 判断是否显示路网
 */
function checkLuWang() {
  // 获取checkbox元素
  var luwang = document.getElementById('luwang');
  // 判断checkbox是否被选中
  if (luwang.checked) {
    map.addLayer(MapLayer);
  } else {
    map.removeLayer(MapLayer);
  }
}

/**
 * 判断是否显示纯路网
 */
 function checkclw() {
  // 获取checkbox元素
  var clw = document.getElementById('clw');
  // 判断checkbox是否被选中
  if (clw.checked) {
    console.log('Checkbox 被选中了。');
    // 显示
    map.addLayer(clwMapLayer);
  } else {
    console.log('Checkbox 没有选中。');
    map.removeLayer(clwMapLayer);
  }
}

/**
 * 图层管理
 */
function layersmanger() {
  var layersM = document.getElementById('layersM');
  var layerscontrol = document.getElementById('layerscontrol');
  if (layersM.checked) {
    // 显示管理图层模态框
    layerscontrol.style.display = 'block';
  } else {
    layerscontrol.style.display = 'none';
  }
}

//复位功能（复位到初始状态）
document.getElementById('restore').onclick = function () {
  //初始中心点
  view.setCenter(centerPos);
  //初始缩放级数
  view.setZoom(zoom);
}